iT邦幫忙

2024 iThome 鐵人賽

0
佛心分享-微軟Windows 11 Pro

深入淺出 Windows 11 Pro系列 第 19

[Day19] Docker與容器基礎介紹 (2)

  • 分享至 

  • xImage
  •  

前情提要:
Docker與容器基礎介紹 (1)

複習一下虛擬機與容器的差異:
https://ithelp.ithome.com.tw/upload/images/20241103/20168497cx4T5Vy79i.png

昨天講解了虛擬機與容器的差異與各自的優缺點,今天進一步來介紹容器運作的原理

前篇文章提到的"容器是模擬作業系統",這句話並不太正確,更正確的說法是,容器共用了宿主機的系統核心
可以做到這件事,跟Linux有著密切的關連

所謂的Linux系統,指的是基於Linux核心開發並衍伸出去的作業系統(Linux發行版),如: Debian,CentOS,Arch,Fedora...
"Linux"這個詞,指的是系統核心,可以想像成機場的塔台,負責調度機場中的飛機起降,與大大小小的突發事件

這些系統雖然都有著Linux核心,但並不代表執行檔是能夠通用在所有Linux系統上執行的,會遇到以下狀況,如:

  • Linux核心版本不同
  • Library版本不同
  • Library安裝位置不同
  • ...

為了解決上述問題,容器採用了資源隔離機制,把檔案系統、網絡、程序等資源隔離,每個容器無法存取其他容器或宿主機的資源,可以想像成除了你家原本的客廳(宿主機)之外,又多蓋了間客房(容器),每個客房都有自己的一套家具與設備,互不干擾

除了資源分離外,我們也需要對資源進行限制,避免容器不會搶奪過多資源,影響彼此的效能。

對這方面的技術有興趣的人可以搜尋Linux namespacecgroups去了解細節

用下面這張圖可以清楚了解,容器為什麼比起虛擬機要輕量的多
容器不模擬出硬體層與作業系統核心,與宿主機共用相同的系統核心,用隔離機制達到我們所希望的"統一運行環境",也就是"Build Once, Run Anywhere"
https://ithelp.ithome.com.tw/upload/images/20241103/20168497olgOtbYFfp.png


上一篇
[Day18] Docker與容器基礎介紹 (1)
下一篇
[Day20] Docker與容器基礎介紹 (3)
系列文
深入淺出 Windows 11 Pro30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言